Database systems are widely used for a number of applications. Generally, the applications demand data integrity and consistency. That is, the database systems are relied upon by applications to accurately and efficiently store and retrieve data.
Some database systems use data caches to assist in updating, modifying and otherwise manipulating data before committing the modified data to the database. The database may be stored in a data area on one or more data volumes. When data from the database is modified, the portion of the database affected by the modification needs to be written from the data cache to the data area. Some database systems cause the modified data in the data cache to be written to the data area when the data cache becomes full or on a regular timed basis (e.g., such as once every few minutes). Unfortunately, it is difficult to efficiently write the modified data to the data area in a way that allows the data to later be efficiently read from the data area.
For example, one way to efficiently write data from the cache to the data store is to sequentially flush the cache and write modified data to the first free storage blocks available in the data volumes. While this provides for an efficient and effective way to write the data, it can make it difficult to later read the data from the data volumes, at least because each of the data pages of a database may be randomly scattered over the data volumes. Such scattering can require a large number of disk seeks to retrieve data from different pages.
It would be desirable to provide improved systems and methods for writing modified data from a cache to a data volume in a database system.